package cn.lg.soar.system.util;

import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;

/**
 * 用户密码工具
 * @author luguoxiang
 * @date 2022/6/1
 * 开源项目：https://gitee.com/lgx1992/lg-soar 求star！请给我star！请帮我点个star！
 */
public interface PasswordUtils {

    /**
     * 密码加密
     * @param inputPassword 输入的密码
     * @param secret 加密密钥
     * @param username 用户名
     * @return
     */
    static String encrypt(String inputPassword, String secret, String username) {
        String str = secret + inputPassword + username;
        return new BCryptPasswordEncoder().encode(str);
    }

    /**
     * 验证密码
     * @param inputPassword 输入的密码
     * @param secret 加密密钥
     * @param username 用户名
     * @param originalPassword 数据库记录的密码
     * @return
     */
    static boolean verify(String inputPassword, String secret, String username, String originalPassword) {
        String str = secret + inputPassword + username;
        return new BCryptPasswordEncoder().matches(str, originalPassword);
    }

}
